package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 警员档案信息业务对象 police_officer_archive
 *
 * @author ruoyi
 * @date 2025-06-11
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class PoliceOfficerArchiveBo extends BaseEntity {

    /**
     * 主键ID
     */
    @NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 警员ID
     */
    @NotNull(message = "警员ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long officerId;

    /**
     * 入警时间
     */
    @NotNull(message = "入警时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date joinPoliceDate;

    /**
     * 参加工作时间
     */
//    @NotNull(message = "参加工作时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date workStartDate;

    /**
     * 入职时间
     */
    @NotNull(message = "入职时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date hireDate;

    /**
     * 状态
     */
    @NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;

    /**
     * 民族
     */
    @NotBlank(message = "民族不能为空", groups = { AddGroup.class, EditGroup.class })
    private String ethnicity;

    /**
     * 政治面貌
     */
    @NotBlank(message = "政治面貌不能为空", groups = { AddGroup.class, EditGroup.class })
    private String politicalStatus;

    /**
     * 学历
     */
    @NotBlank(message = "学历不能为空", groups = { AddGroup.class, EditGroup.class })
    private String education;

    /**
     * 转正情况
     */
    @NotBlank(message = "转正情况不能为空", groups = { AddGroup.class, EditGroup.class })
    private String probationStatus;

    /**
     * 民警类型
     */
    @NotBlank(message = "民警类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String officerType;

    /**
     * 婚姻情况
     */
    @NotBlank(message = "婚姻情况不能为空", groups = { AddGroup.class, EditGroup.class })
    private String maritalStatus;

    /**
     * 毕业院校
     */
    @NotBlank(message = "毕业院校不能为空", groups = { AddGroup.class, EditGroup.class })
    private String graduateSchool;

    /**
     * 所学专业
     */
    @NotBlank(message = "所学专业不能为空", groups = { AddGroup.class, EditGroup.class })
    private String major;

    /**
     * 籍贯
     */
    @NotBlank(message = "籍贯不能为空", groups = { AddGroup.class, EditGroup.class })
    private String nativePlace;

    /**
     * 备注信息
     */
    @NotBlank(message = "备注信息不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remarks;


}
